/**
 * common-jquery-ui
 */

/**
 * 自动完成功能，要求被返回的数据应为List<Object>，需写到$().ready();中
 * 
 * @param jqObj
 *            需要加载autocomplete的jquery对象
 * @param url
 *            请求数据的url + data， 例："request?data=" + data
 * @param mapKey
 *            被请求的数据返回后，Object中需要被赋到HTML元素的value中的值
 * @param mapVal
 *            被请求的数据返回后，Object中需要被显示到下拉列表中的值
 * @param minLength
 *            促使autocompelte运行的文本框文字的最小长度
 */
function myAutoComplete(jqObj, url, mapKey, mapVal, minLength) {
	jqObj.autocomplete({
		source : function(request, response) {
			$.ajax({
				url : url,
				type : "post",
				dataType : "json",
				success : function(data) {
					response($.map(data, function(item) {
						return {
							label : item.mapKey,
							value : item.mapVal
						}
					}));
				}
			});
		},
		minLength : minLength,
		open : function() {
			$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
		},
		close : function() {
			$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
		}
	});
}

/**
 * 为指定元素初始化日期控件，需写到$().ready();中
 * 
 * @param jqObj
 *            需要添加日期控件的jquery对象
 */
function initDatepicker(jqObj) {
	jqObj.datepicker({
		clearText : '清除',
		clearStatus : '清除已选日期',
		closeText : '关闭',
		closeStatus : '不改变当前选择',
		prevText : '&lt;上月',
		prevStatus : '显示上月',
		nextText : '下月&gt;',
		nextStatus : '显示下月',
		currentText : '今天',
		currentStatus : '显示本月',
		monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月',
				'十月', '十一月', '十二月' ],
		monthNamesShort : [ '一', '二', '三', '四', '五', '六', '七', '八', '九', '十',
				'十一', '十二' ],
		monthStatus : '选择月份',
		yearStatus : '选择年份',
		weekHeader : '周',
		weekStatus : '年内周次',
		dayNames : [ '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ],
		dayNamesShort : [ '周日', '周一', '周二', '周三', '周四', '周五', '周六' ],
		dayNamesMin : [ '日', '一', '二', '三', '四', '五', '六' ],
		dayStatus : '设置 DD 为一周起始',
		dateStatus : '选择 m月 d日, DD',
		dateFormat : 'yy-mm-dd',
		firstDay : 1,
		initStatus : '请选择日期',
//		isRTL : false,
		changeYear : true,
		changeMonth : true,
		beforeShow : function() {
			setTimeout(function() {
				$('#ui-datepicker-div').css("z-index", 999);
			}, 100);
		}
	});
}

/**
 * 为指定元素初始化日期时间控件，需写到$().ready();中
 * 
 * @param jqObj
 *            需要添加日期时间控件的jquery对象
 * @param hourBegin
 *            开始时间
 */
function initDateTimepicker(jqObj, hourBegin) {
	if (hourBegin == undefined) {
		hourBegin = 0;
	}
	jqObj.datetimepicker({
		showSecond : true,
		timeFormat : 'HH:mm:ss',
		stepHour : 2,
		stepMinute : 10,
		stepSecond : 10,
		clearText : '清除',
		clearStatus : '清除已选日期',
		closeText : '关闭',
		closeStatus : '不改变当前选择',
		prevText : '&lt;上月',
		prevStatus : '显示上月',
		nextText : '下月&gt;',
		nextStatus : '显示下月',
		currentText : '今天',
		currentStatus : '显示本月',
		monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月',
				'十月', '十一月', '十二月' ],
		monthNamesShort : [ '一', '二', '三', '四', '五', '六', '七', '八', '九', '十',
				'十一', '十二' ],
		monthStatus : '选择月份',
		yearStatus : '选择年份',
		weekHeader : '周',
		weekStatus : '年内周次',
		dayNames : [ '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ],
		dayNamesShort : [ '周日', '周一', '周二', '周三', '周四', '周五', '周六' ],
		dayNamesMin : [ '日', '一', '二', '三', '四', '五', '六' ],
		dayStatus : '设置 DD 为一周起始',
		dateStatus : '选择 m月 d日, DD',
		dateFormat : 'yy-mm-dd',
		firstDay : 1,
		initStatus : '请选择日期',
		isRTL : false,
		changeYear : true,
		changeMonth : true,
		hourMin : 5,
		hourMax : 23,
		hour : hourBegin,
		ampm : false,
		timeOnlyTitle : '请选择时间',
		timeText : '时间',
		hourText : '小时',
		minuteText : '分钟',
		secondText : '秒钟',
		currentText : '当前',
		closeText : '关闭',
		hourGrid : 4,
		minuteGrid : 15,
		beforeShow : function() {
			setTimeout(function() {
				$('#ui-datepicker-div').css("z-index", 999);
			}, 100);
		}
	});
}

/**
 * 为指定元素初始化时间控件，需写到$().ready();中
 * 
 * @param jqObj
 *            需要添加时间控件的jquery对象
 * @param hourBegin
 *            开始时间
 */
function initTimepicer(jqObj, hourBegin) {
	if (hourBegin == undefined) {
		hourBegin = 0;
	}
	jqObj.timepicker({
		hourMin : 5,
		hourMax : 23,
		hour : hourBegin,
		ampm : false,
		timeOnlyTitle : '请选择时间',
		timeText : '时间',
		hourText : '小时',
		minuteText : '分钟',
		secondText : '秒钟',
		currentText : '当前',
		closeText : '关闭',
		hourGrid : 4,
		minuteGrid : 10,
		beforeShow : function() {
			setTimeout(function() {
				$('#ui-datepicker-div').css("z-index", 999);
			}, 100);
		}
	});
}


